﻿using Microsoft.AspNetCore.Mvc;
using Refit;
using Service.Auth.Model.Model.Dto;
using Service.Auth.Model.Model.RequestDto.User;
using Service.Auth.Model.Model.Vo;
using Service.Framework.Attributes;
using Service.Framework.Packet;

namespace Service.Auth.Model;

[FeginClient(serviceName: "ServiceAuthApi")]
public interface IFeginClientService
{

    /// <summary>
    /// 
    /// </summary>
    /// <param name="clientId"></param>
    /// <returns></returns>
    [Get("/api/Client/InnerQueryClientByClientId")]
    Task<R<AuthClientDto>> InnerQueryClientByClientId([FromQuery] String clientId, [Header("InnerSecretKey")] string innerSecretKey);


    /// <summary>
    /// 
    /// </summary>
    /// <param name="clientId"></param>
    /// <returns></returns>
    [Get("/api/System/InnerQuerySystemByClientId")]
    Task<R<TSystemVo>> InnerQuerySystemByClientId([FromQuery] String clientId, [Header("InnerSecretKey")] string innerSecretKey);



    /// <summary>
    /// 
    /// </summary>
    /// <param name="command"></param>
    /// <returns></returns>
    [Post("/api/User/InnerCreateUserByPhone")]
    Task<R<long>> InnerCreateUserByPhone([FromBody] CreateUserByPhoneDto command, [Header("InnerSecretKey")] string innerSecretKey);


    /// <summary>
    /// 根据id获取用户信息
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    [Get("/api/User/InnerQueryUserInfoById")]
    Task<R<UserInfoDto>> InnerQueryUserInfoById([FromQuery] long id, [Header("InnerSecretKey")] string innerSecretKey);


    /// <summary>
    /// 根据id获取用户信息
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    [Post("/api/User/QueryUserSelect")]
    Task<R<List<IdName<long, string>>>> QueryUserSelect([FromBody] List<string> roleNums);


}